Modern single chip digital systems employ multiple processors but for cost reasons a single external memory or other shared resource. In order to obtain maximum efficiency of use of the available resource and ensure each processor gets an adequate share of the resource it is necessary to implement an arbitration system. The function of the arbitration system, also referred to as an arbiter, is to decide which of the devices requesting access to the resource will have the access granted.
In one example granting the access is based on a first in-first served basis. This may result in granting access to relatively unimportant processes at the expense of important ones.
In another example known in the art the access is granted based on a round-robin basis. Each of the devices has assigned a time-slot in which it can access the resource and after expiration of the assigned time-slot ownership of the resource is handed over to another device and it has to wait for another time-slot in order to access the resource. The drawback of this solution is that during some time-slots the resource is not used if the device associated with this time-slot does not need the resource.
In yet another solution known in the art the decision of the arbiter is based on a parameter assigned to each of the devices known as priority. A device requesting access having the highest priority is granted the access. The disadvantage of this solution is that a fixed priority does not take into account behaviour of the users of the resource and changes of priorities have to be initiated and executed by the user.